from functools import singledispatch

# 定义一个泛型函数，根据参数类型选择不同实现
@singledispatch
def process(arg):
    print(f"处理未知类型的参数: {arg}")

# 为 int 类型参数提供专门的实现
@process.register(int)
def _(arg):
    print(f"处理整数: {arg}，它的平方是 {arg ** 2}")

# 为 list 类型参数提供专门的实现
@process.register(list)
def _(arg):
    print(f"处理列表: {arg}，它的长度是 {len(arg)}")


# 测试
process(5)
process([1, 2, 3])
process("hello")